import type { WorldSystem } from "./worldSystem";
import { container, ServiceIdentifiers } from "../../core/di";

/**
 * ECS 根管理器（保持向后兼容，但实际初始化由 GameApplication 管理）
 * @deprecated 使用 GameApplication 或直接从 DI 容器获取 WorldSystem
 */
class RootEcs {
    private static _instance: RootEcs;

    private constructor() {
        // 不再持有 worldSystem，改为从 DI 容器获取
    }

    public static getInstance(): RootEcs {
        if (!RootEcs._instance) {
            RootEcs._instance = new RootEcs();
        }
        return RootEcs._instance;
    }

    /**
     * 初始化 ECS（已废弃，由 GameApplication 管理）
     * @deprecated 使用 GameApplication.initialize() 代替
     */
    initEcs(): void {
        console.warn('⚠️ rootEcs.initEcs() 已废弃，ECS 由 GameApplication 自动初始化');
    }

    /**
     * 获取 ECS 世界（从 DI 容器获取）
     * @deprecated 直接使用 container.resolve<WorldSystem>(ServiceIdentifiers.ECSWorld)
     */
    getWorld(): WorldSystem {
        return container.resolve<WorldSystem>(ServiceIdentifiers.ECSWorld);
    }
}

export const root = RootEcs.getInstance();